The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for providing scalable network configuration with consistent updates in software defined networks.
Software-defined networking (SDN) is an approach to computer networking which allows network administrators to manage network services through abstraction of lower level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forwards traffic to the selected destination (the data plane). With SDN, network intelligence and state are logically centralized and the underlying network infrastructure is abstracted from the applications.
SDN requires some mechanism for the control plane to communicate with the data plane. One such mechanism, OpenFlow, is a standard interface designed specifically for SDN which structures communication between the control and data planes of supported network devices. OpenFlow allows direct access to, and manipulation of, the forwarding plane of network devices, such as switches and routers—both physical and virtual (hypervisor based). The OpenFlow protocol defines basic primitives that can be used by an external software application to program the forwarding plane of network devices, similar to the instruction set of a processor.
OpenFlow uses the concept of flows to identify network traffic based on pre-defined match rules that can be statically or dynamically programmed by the SDN control software. Since OpenFlow allows the network to be programmed on a per-flow basis, an OpenFlow-based SDN architecture provides extreme granular control, enabling the network to respond to real-time changes at the application, user, and session levels.